/**
 * sanitizeHtml 相关配置
 */
const sanitizeHtml = require("sanitize-html");

// 自定义 sanitize-html 配置
const cleanHtml = (input) => {
  return sanitizeHtml(input, {
    // 允许的 HTML 标签
    allowedTags: ["h1", "h2", "h3", "h4", "h5", "h6", "blockquote", "p", "a", "ul", "ol", "li", "b", "i", "strong", "em", "strike", "code", "hr", "br", "div", "span", "pre", "img", "table", "thead", "tbody", "tr", "th", "td", "u"],
    // 允许的 HTML 属性
    allowedAttributes: {
      a: ["href", "target", "name"], // 链接标签允许 href、target 和 name 属性
      img: ["src", "alt", "title", "width", "height", "style"], // 图片标签允许的属性
      "*": ["style", "class", "data-*"], // 所有标签通用的属性
    },
    // 允许的样式属性
    allowedStyles: {
      "*": {
        // 通用标签允许的样式
        color: true,
        "font-size": true,
        "text-align": [/^left$/, /^right$/, /^center$/, /^justify$/],
        "background-color": true,
      },
      img: {
        // 图片标签允许的样式
        width: [/^\d+(px|%)?$/],
        height: [/^\d+(px|%)?$/],
      },
    },
    // 允许的 URL 协议（避免危险协议如 `javascript:`）
    allowedSchemes: ["http", "https", "data"],
    // 允许的 iframe（如果 wangeditor 使用了嵌入式视频或其他 iframe）
    allowIframeHostnames: ["www.youtube.com", "player.vimeo.com"], // 根据需求添加域名
  });
};

module.exports = cleanHtml;
